#ifndef CCONFIGMANAGER_H
#define CCONFIGMANAGER_H

#include "json/value.h"
#include "json/json.h"
#include <string>

class CConfigManager
{
public:
    //instances
    //static  IConfigManager* instance() ;
    static  CConfigManager* instance() ;

    //loadcfgfile
    //param[in] strConfigFilePath : 设备配置其文件路径
    //param[out] jsnConfig : 设备配置
    //result : true 成功 false: 失败
    virtual bool loadConfig(const std::string & strConfigFilePath, Json::Value & jsnConfig);

    //getconfig
    //param[in] strConfigName : 设备配置其文件路径
    //param[out] jsnConfig : 具体配置
    //result : true 成功 false: 失败
    virtual bool getConfig(const std::string & strConfigName, Json::Value & jsnConfig);

    //setconfig
    //param[in] strConfigName : 设备配置其文件路径
    //param[out] jsnConfig : 具体配置
    //result : true 成功 false: 失败
    virtual bool setConfig(const std::string & strConfigName, Json::Value & jsnConfig);

private:
     CConfigManager();
     ~CConfigManager();

private:
     std::string m_strConfigPath;
     Json::Value m_jsnConfig;
     static CConfigManager* m_pInstance;
};

#endif // CCONFIGMANAGER_H
